﻿#include "hello_activator.h"
#include "hello_impl.h"

/*
* 当插件被加载和启动时，CTK框架会调用 ctkPluginActivator 的 start 方法。
在这个方法中，开发者可以初始化插件的资源、注册服务或执行其他启动逻辑。*/
void HelloActivator::start(ctkPluginContext* context)
{
    HelloImpl* helloImpl = new HelloImpl();
    context->registerService<HelloService>(helloImpl);
    s.reset(helloImpl);
    /*
    QScopedPointer s是 Qt 提供的一种智能指针，它会在离开其作用域时自动删除所管理的对象。
    因此，如果 HelloActivator 中使用 QScopedPointer<HelloService> s 来管理 helloImpl，
    当 HelloActivator 实例销毁时，helloImpl 将会被自动释放。
    */
}

/*当插件被停止和卸载时，CTK框架会调用 ctkPluginActivator 的 stop 方法。
在这个方法中，开发者可以释放资源、注销服务或执行其他清理工作。
*/
void HelloActivator::stop(ctkPluginContext* context)
{
    Q_UNUSED(context)
        /*许多编译器会对未使用的参数发出警告。使用 Q_UNUSED 可以抑制这些警告，
        从而使代码在严格的编译环境中依然干净无警告。*/
}
